package com.shop.shopmall.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * WebConfig 配置类，用于将文件上传目录映射为静态资源访问路径
 */
@Configuration  // 声明为配置类，Spring Boot 在启动时会自动加载
public class WebConfig implements WebMvcConfigurer {

    // 读取 application.yml 中 file.upload-dir 的配置值（相对路径）
    @Value("${file.upload-dir}")
    private String uploadDir;

    /**
     * 重写 addResourceHandlers 方法，将上传目录映射为静态资源路径
     * 使得上传的图片可以通过 URL 直接访问，如 http://localhost:8080/uploads/文件名
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/uploads/**")   // 请求路径以 /uploads/ 开头的映射
                .addResourceLocations("file:" + uploadDir + "/");  // 指定实际存放文件的目录
    }
}